# -*- coding: utf-8 -*-
"""
@Time    : 2025/2/25 14:15 
@Author  : ZhangShenao 
@File    : 3.逻辑回归.py 
@Desc    : 逻辑回归

逻辑回归主要用于处理分类问题,特别是二分类问题
它的目的是预测一个事件发生的概率,并将这个概率转换为二元结果:0|1、是|否等
逻辑回归通过使用逻辑函数(也称为Sigmoid函数)将线性回归模型的输出映射到0和1之间的概率值上
逻辑回归的关键是找到似然函数

本示例采用逻辑回归模型,预测学生考试通过的概率
"""

import numpy as np
# 导入库
from sklearn.linear_model import LogisticRegression

# 准备数据
# X: 特征值,代表学习时长(小时)
# y: 目标值,代表是否通过考试
X = np.array([[10], [20], [30], [40], [50]])  # 学习时长(小时)
y = np.array([0, 0, 1, 1, 1])  # 是否通过考试 1=是 0=否

# 创建逻辑回归模型并训练
model = LogisticRegression()
model.fit(X, y)

# 预测学习时间为25小时的学生通过考试的概率
prediction_probability = model.predict_proba([[25]])
prediction = model.predict([[25]])
print(f"通过考试的概率为：{prediction_probability[0][1]:.2f}")
print(f"预测分类：{'通过' if prediction[0] == 1 else '未通过'}")
